package ec.edu.uce.tour.modelo;

import java.io.Serializable;
import javax.persistence.*;

import java.util.Set;


/**
 * The persistent class for the provincia_tbl database table.
 * 
 */
@Entity
@Table(name="provincia_tbl",schema="tour")
@NamedQueries({
	//carga las provincias con los nombres
	@NamedQuery(name="ProvinciaTbl.cargarListaProvinciasPorIdPais", query="select new ec.edu.uce.tour.dto.ProvinciasDTO(a.provIdPk, a.provCodigo, b.paiNombre, a.provNombre, a.provEstado) from ProvinciaTbl a inner join a.paisTbl b where b.paiIdPk = :idPais "),
})
public class ProvinciaTbl implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(name="PROVINCIA_TBL_PROVIDPK_GENERATOR", sequenceName="tour.PROVINCIA_TBL_PROV_ID_PK_SEQ", allocationSize = 0)
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="PROVINCIA_TBL_PROVIDPK_GENERATOR")
	@Column(name="prov_id_pk", unique=true, nullable=false)
	private Integer provIdPk;

	@Column(name="prov_codigo", nullable=false, length=3)
	private String provCodigo;

	@Column(name="prov_estado", nullable=false, length=1)
	private String provEstado;

	@Column(name="prov_nombre", nullable=false, length=50)
	private String provNombre;

	//bi-directional many-to-one association to CiudadTbl
	@OneToMany(mappedBy="provinciaTbl")
	private Set<CiudadTbl> ciudadTbls;

	//bi-directional many-to-one association to PaisTbl
    @ManyToOne
	@JoinColumn(name="pai_id_pk")
	private PaisTbl paisTbl;

    public ProvinciaTbl() {
    }

	public Integer getProvIdPk() {
		return this.provIdPk;
	}

	public void setProvIdPk(Integer provIdPk) {
		this.provIdPk = provIdPk;
	}

	public String getProvCodigo() {
		return this.provCodigo;
	}

	public void setProvCodigo(String provCodigo) {
		this.provCodigo = provCodigo;
	}

	public String getProvEstado() {
		return this.provEstado;
	}

	public void setProvEstado(String provEstado) {
		this.provEstado = provEstado;
	}

	public String getProvNombre() {
		return this.provNombre;
	}

	public void setProvNombre(String provNombre) {
		this.provNombre = provNombre;
	}

	public Set<CiudadTbl> getCiudadTbls() {
		return this.ciudadTbls;
	}

	public void setCiudadTbls(Set<CiudadTbl> ciudadTbls) {
		this.ciudadTbls = ciudadTbls;
	}
	
	public PaisTbl getPaisTbl() {
		return this.paisTbl;
	}

	public void setPaisTbl(PaisTbl paisTbl) {
		this.paisTbl = paisTbl;
	}
	
}